/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladores;


import entidades.Propuesta;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import javax.enterprise.context.SessionScoped;
//import javax.faces.bean.SessionScoped;
//import javax.faces.bean.ManagedBean;


/**
 *
 * @author Pablo
 */
//@ManagedBean(name = "listaPropuestas")
@javax.inject.Named("listaPropuestas")
@SessionScoped
public class ListaPropuestasController extends ParentController implements Serializable {

    private Integer paisDestino;
    private Date fechaIni;
    private Date fechaFin;
    private Integer numDiasMax;
    private Integer numDiasMin;
    private Integer planEco;
    private Integer planOcio;
    private String descriplan;
    private boolean sessionOpen;
    private boolean index;
    
    private Integer idPropSelected;
    
    
    private ArrayList<Propuesta> propuestas;
    
   
            
    /**
     * Creates a new instance of ListaPropuestasController
     */
    public ListaPropuestasController() {
        descriplan = "";
        index = true;
        sessionOpen = false;
    }   

    public Date getFechaFin() {
        return fechaFin;
    }

    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }

    public Date getFechaIni() {
        return fechaIni;
    }

    public void setFechaIni(Date fechaIni) {
        this.fechaIni = fechaIni;
    }

    public Integer getNumDiasMax() {
        return numDiasMax;
    }

    public void setNumDiasMax(Integer numDiasMax) {
        this.numDiasMax = numDiasMax;
    }

    public Integer getNumDiasMin() {
        return numDiasMin;
    }

    public void setNumDiasMin(Integer numDiasMin) {
        this.numDiasMin = numDiasMin;
    }

    public Integer getPaisDestino() {
        return paisDestino;
    }

    public void setPaisDestino(Integer paisDestino) {
        this.paisDestino = paisDestino;
    }

    public Integer getPlanEco() {
        return planEco;
    }

    public void setPlanEco(Integer planEco) {
        this.planEco = planEco;
    }

    public Integer getPlanOcio() {
        return planOcio;
    }

    public void setPlanOcio(Integer planOcio) {
        this.planOcio = planOcio;
    }

    
    
    public String getDescriplan() {
        return descriplan;
    }

    public void setDescriplan(String descriplan) {
        this.descriplan = descriplan;
    }

    public ArrayList<Propuesta> getPropuestas() {
        return propuestas;
    }

    public void setPropuestas(ArrayList<Propuesta> propuestas) {
        this.propuestas = propuestas;
    }

    public boolean isSessionOpen() {
        return sessionOpen;
    }

    public void setSessionOpen(boolean sessionOpen) {
        this.sessionOpen = sessionOpen;
    }

    public boolean isIndex() {
        return index;
    }

    public void setIndex(boolean index) {
        this.index = index;
    }

    public Integer getIdPropSelected() {
        return idPropSelected;
    }

    public void setIdPropSelected(Integer idPropSelected) {
        this.idPropSelected = idPropSelected;
    }
    
    public void cargaListas(){
        cargaListaPaises();
        cargaListaPlEco();
        cargaListaPlOcio();
    }
    
    public String doBuscarToMenu(){
        propuestas = propuestaService.buscaPropuesta(paisDestino, fechaIni, 
                fechaFin, numDiasMax, numDiasMin, planEco, planOcio);
        return "menupage";
    }
    
    public String doBuscarToListado(){        
        propuestas = propuestaService.buscaPropuesta(paisDestino, fechaIni, 
                fechaFin, numDiasMax, numDiasMin, planEco, planOcio);
        return "listadopropuestas";        
    }

    public void listenFechaIniChange (){
        fechaIni = null;
    }
    
    public void listenNDiasMinChange(){
        numDiasMin = null;
    }
    
    public void listenPlanChange (){
        if (planEco == null)
            descriplan = "";
        else{
            for (int i = 0; i<getPlEcoSelect().size(); i++){
                if (getPlEcoSelect().get(i).getValue().equals(planEco))
                    descriplan = getPlEcoSelect().get(i).getDescription();
            }
        }
    }
    
    public String update(){
        if (index)
            return "findproposal";
        else
            return ":tabla_propuestas";
    }
    
    public void doSetProposals(Integer idProp){
        idPropSelected = idProp;
    }
}
